home *** CD-ROM | disk | FTP | other *** search
- program yacctest
- c
- c Tests the Yacc fortran parser.
- * Should pass the current version.
- C It is also a legal, though not especially meaningful, program
- *
- implicit integer (u-z)
- dimension xyz(3),abc
- c The next line has some whitespace, but nothing else. Note continuation!!
-
- $ (9,9,100)
- 22 equivalence (a,b) , (xyz,abc,def)
- intrinsic sqrt,log
- c
- common com1,com2 /blk1/ com3,com4(5),com6, /blk2/ w123x
-
- common comm1,comm2 /blk3/ comm3,comm4(5),comm6 /blk4/ cc1
-
- implicit double precision (d), real(r)
- integer program(3,3), pause(20)
- character *8 bb,bb13*3
- character *4, cc(9),cc1
- parameter (Pi = 3.14159265358979D0)
-
- logical stop, save
- equivalence (xyz(1),qq), (bb(1:3),bb13)
- x , (cc1,bb)
- real a123(9,9), ifa
- integer xray
- external xray
- double precision dbl1,dbl2(3)
- logical test
- complex compl1,compl2
- test = .true.
- data ( (a123(i,j),i=1,9),j=1,9) ,ifa / 82*0.0 /
- data cc / 9*'help' /, bb /'wouldn''t'/ com4 / -1e7,+5.2
- $, 4habcd, .1, 1. /
- if(dbl1) 10,34567,5432
- 34567 stop
- 10 stop 123
- 5432 pause
- end = 123 + pause(1)
- read(iunit,*) (((abc(i,j,k),k=1,100),j=1,9),i=1,9),xyz(2)
- read iunit , a,b,xyz(1)
- write(iunit,*) 'hello there',a
- print *, cc(1),a+b*Pi
- print 5, (cc(i),i=1,4)
- if( stop .and. save ) then
- cc(2) = 'abcd'
- www = 4.7 + (Pi * 2)**8
- else if(abc(1,1,1) .eq. xyz(2)) then
- open(unit=4,file='foo.bar',err=5432,status='old')
- rewind 1+3
- close(4)
- open(3,file='buzzsaw',form='unformatted',status='new')
- backspace (unit=3)
- close(unit=3)
- endif
- test = .false.
- dbl1 = 1.2345
- write (6,900) dbl1
- 900 format(f10.2)
- if(test) goto 10
- pause 456
- goto 34567
- end
-
- c comments in here don't hurt a bit
-
- integer function xray(beta,gamma)
- character *(*) gamma
- *
-
- logical beta
- if( beta ) xray = 1.0D0
- end
-
- subroutine home(x,*)
- common /blk1/ com3,com4(5),com6
- save /blk1/,xray
- if((x-1.0)**(sqrt(2.0))/(5/4+com6) .gt. com3) then
- xray = 1.234
- return
- else
- xray = -1.234 ** (+1.7e10)
- endif
- com4(com2+com6) = com4(xray)
- return 1
- end
-